package com.community.charge.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.community.common.annotation.Excel;
import com.community.common.core.domain.BaseEntity;

/**
 * itema对象 charge_item
 * 
 * @author mdh
 * @date 2025-10-27
 */
public class ChargeItem extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 收费项目ID */
    private Long chargeItemId;

    /** 社区ID */
    private Long communityId;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String name;

    /** 项目类别 */
    @Excel(name = "项目类别")
    private String category;

    /** 计费方式 */
    @Excel(name = "计费方式")
    private String billingMethod;

    /** 计费单位 */
    @Excel(name = "计费单位")
    private String billingUnit;

    /** 价格 */
    @Excel(name = "价格")
    private BigDecimal price;

    /** 账单周期 */
    @Excel(name = "账单周期")
    private String billingCycle;

    /** 违约金率 */
    private BigDecimal penaltyRate;

    /** 违约起算天数 */
    @Excel(name = "违约起算天数")
    private Long penaltyStartDate;

    /** 违约执行日期 */
    @Excel(name = "违约执行日期")
    private Long penaltyExecuteDate;

    /** 优惠方式设置 */
    @Excel(name = "优惠方式设置")
    private String discountMethod;

    /** 状态(启用/禁用) */
    @Excel(name = "状态(启用/禁用)")
    private Integer status;

    /** 描述 */
    @Excel(name = "描述")
    private String description;

    public void setChargeItemId(Long chargeItemId) 
    {
        this.chargeItemId = chargeItemId;
    }

    public Long getChargeItemId() 
    {
        return chargeItemId;
    }

    public void setCommunityId(Long communityId) 
    {
        this.communityId = communityId;
    }

    public Long getCommunityId() 
    {
        return communityId;
    }

    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }

    public void setCategory(String category) 
    {
        this.category = category;
    }

    public String getCategory() 
    {
        return category;
    }

    public void setBillingMethod(String billingMethod) 
    {
        this.billingMethod = billingMethod;
    }

    public String getBillingMethod() 
    {
        return billingMethod;
    }

    public void setBillingUnit(String billingUnit) 
    {
        this.billingUnit = billingUnit;
    }

    public String getBillingUnit() 
    {
        return billingUnit;
    }

    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }

    public void setBillingCycle(String billingCycle) 
    {
        this.billingCycle = billingCycle;
    }

    public String getBillingCycle() 
    {
        return billingCycle;
    }

    public void setPenaltyRate(BigDecimal penaltyRate) 
    {
        this.penaltyRate = penaltyRate;
    }

    public BigDecimal getPenaltyRate() 
    {
        return penaltyRate;
    }

    public void setPenaltyStartDate(Long penaltyStartDate) 
    {
        this.penaltyStartDate = penaltyStartDate;
    }

    public Long getPenaltyStartDate() 
    {
        return penaltyStartDate;
    }

    public void setPenaltyExecuteDate(Long penaltyExecuteDate) 
    {
        this.penaltyExecuteDate = penaltyExecuteDate;
    }

    public Long getPenaltyExecuteDate() 
    {
        return penaltyExecuteDate;
    }

    public void setDiscountMethod(String discountMethod) 
    {
        this.discountMethod = discountMethod;
    }

    public String getDiscountMethod() 
    {
        return discountMethod;
    }

    public void setStatus(Integer status)
    {
        this.status = status;
    }

    public Integer getStatus()
    {
        return status;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("chargeItemId", getChargeItemId())
            .append("communityId", getCommunityId())
            .append("name", getName())
            .append("category", getCategory())
            .append("billingMethod", getBillingMethod())
            .append("billingUnit", getBillingUnit())
            .append("price", getPrice())
            .append("billingCycle", getBillingCycle())
            .append("penaltyRate", getPenaltyRate())
            .append("penaltyStartDate", getPenaltyStartDate())
            .append("penaltyExecuteDate", getPenaltyExecuteDate())
            .append("discountMethod", getDiscountMethod())
            .append("status", getStatus())
            .append("description", getDescription())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
